package com.excesys.exsecs.energy.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.excesys.exsecs.energy.entity.DevAreaMap;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface DevAreaMapMapper extends BaseMapper<DevAreaMap> {

    //区域总用电量 - 电
    double getSumTotalPower(@Param("date") String date,@Param("subzone") String subzone, @Param("id") String id);

    //区域图表 - 电
    List<Map<String, Object>> chartPower(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //区域图表 - 水
    List<Map<String, Object>> chartWater(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //区域月图表 - 电
    List<Map<String, Object>> chartMonthPower(@Param("date") String date, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //区域月图表 - 水
    List<Map<String, Object>> chartMonthWater(@Param("date") String date, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //区域年图表 -电
    List<Map<String, Object>> chartYearPower(@Param("date") String date, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //区域年图表 - 水
    List<Map<String, Object>> chartYearWater(@Param("date") String date, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //区域 年区间 图表 - 电
    List<Map<String, Object>> chartMonthSection(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //区域 年区间 图表 -水
    List<Map<String, Object>> chartMonthWaterSection(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //区域总用电量
    List<Map<String, Object>> powerAreaLinks(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idsList") List<String> idsList);

    //能耗报表 - 电 - 日
    List<Map<String, Object>> dayReport(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList);

    //能耗报表 - 电 - 日区间
    List<Map<String, Object>> daySectionReport(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList);

    //能耗报表 - 电 - 月
    List<Map<String, Object>> monthReport(@Param("date") String date, @Param("idList") List<String> idList);
    //能耗报表 - 电 - 月区间
    List<Map<String, Object>> monthSectionReport(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList);


    //能耗报表 - 年
    List<Map<String, Object>> yearReport(@Param("date") String date, @Param("idList") List<String> idList);

    List<Map<String, Object>> yearSectionReport(@Param("date")String startTime, @Param("endTime")String endTime, @Param("idList")List<String> idList);

    //能耗报表 - 日 - 水
    List<Map<String, Object>> dayWaterReport(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList);

    //能耗报表 - 水 - 日区间
    List<Map<String, Object>> dayWaterSectionReport(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList);


    //能耗报表 - 月 - 水
    List<Map<String, Object>> monthWaterReport(@Param("date") String date, @Param("idList") List<String> idList);
    //能耗报表 - 月 - 水 - 区间
    List<Map<String, Object>> monthWaterSectionReport(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList);

    //能耗报表 - 年 - 水
    List<Map<String, Object>> yearWaterReport(@Param("date") String date, @Param("idList") List<String> idList);

    //区域能耗排序 - 电
    List<Map<String, Object>> areaSortRank(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList, @Param("energyType") String energyType);

    //区域能耗排序 - 水
    List<Map<String, Object>> areaSortWaterRank(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList, @Param("energyType") String energyType);

    //区域总用水量 - 水
    double getSumTotalWater(@Param("energyType") String energyType, @Param("timeValue") String timeValue,@Param("subzone") String subzone,@Param("id") String id);




}